#ifndef CHEETAH_CORE_SETTINGS_H
#define CHEETAH_CORE_SETTINGS_H

#if defined(_WIN32) || defined(_WIN64)
#define CHEETAH_IS_WINDOWS
#elif defined(__linux__)
#define CHEETAH_IS_LINUX
#endif


#include <float.h>
#ifndef INFINITY
#define INFINITY FLT_MAX
#endif

#ifdef M_PI
#undef M_PI
#endif
#define M_PI       3.14159265358979323846f
#define INV_PI     0.31830988618379067154f
#define INV_TWOPI  0.15915494309189533577f
#define INV_FOURPI 0.07957747154594766788f
#if defined(CHEETAH_IS_WINDOWS)
#define alloca _alloca
#endif
#ifndef CHEETAH_L1_CACHE_LINE_SIZE
#define CHEETAH_L1_CACHE_LINE_SIZE 64
#endif
#ifndef CHEETAH_POINTER_SIZE
#if defined(__amd64__) || defined(_M_X64)
#define CHEETAH_POINTER_SIZE 8
#elif defined(__i386__) || defined(_M_IX86)
#define CHEETAH_POINTER_SIZE 4
#endif
#endif
#ifndef CHEETAH_HAS_64_BIT_ATOMICS
#if (CHEETAH_POINTER_SIZE == 8)
#define CHEETAH_HAS_64_BIT_ATOMICS
#endif
#endif // CHEETAH_HAS_64_BIT_ATOMICS

//#if defined(CHEETAH_IS_WINDOWS)
//#include <windows.h>
//#endif
//
//#ifdef max
//#undef max
//#endif
//#ifdef min
//#undef min
//#endif
//
//#ifdef INT
//#undef INT
//#endif

#ifndef NULL
#define NULL 0
#endif

#include <assert.h>

#endif // CHEETAH_CORE_SETTINGS_H
